﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BLL;
using Entities;
using DAL;
using System.Data.SqlClient;
using System.Configuration;
using BLToolkit.Data;

namespace CuaHangBangDia.DoanhThu
{
    public partial class ThemNhapHangForm : Form
    {
        int dem = 0;
        
        public ThemNhapHangForm()
        {
            InitializeComponent();
        }

        private void dtThem_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            int kq;

            string ten = dtThem.Columns[e.ColumnIndex].Name;
            if (ten.Equals("btnThem"))
            {
                if (dtThem.Rows.Count > 0)
                {
                    for (int i = 0; i < dtThem.Rows.Count; i++)
                    {

                        if (dtThem.Rows[i].Cells[0] != null && dtThem.Rows[i].Cells[0].Value.Equals(true))
                        {
                            NhapHang nh = GetDataNH(i);
                            kq = NhapHang.Objects.Add(nh);
                            if (kq > 0)
                            {
                                MessageBox.Show("Thêm thành công","Thông Báo");
                            }
                        }
                        else
                        {
                        }
                    }
                }
            }

        }

        private NhapHang GetDataNH(int i)
        {
            NhapHang nh = new NhapHang();           
            nh.NgayNhap = Convert.ToDateTime(dtThem.Rows[i].Cells[1].Value);            
            if ((dtThem.Rows[i].Cells[2].Value == null && dtThem.Rows[i].Cells[3].Value == null) || dtThem.Rows[i].Cells[3].Value == null || dtThem.Rows[i].Cells[2].Value == null)
            {
                MessageBox.Show("Nhập Giá Trị cho Số Lượng và Tổng Tiền");
                return null;
            }
            else
            {
                nh.SoLuong = Convert.ToInt32(dtThem.Rows[i].Cells[2].Value);
                nh.TongTien = Convert.ToDouble(dtThem.Rows[i].Cells[3].Value);
                return nh;
            }
            
            
            
        }

        private void frmThemNhapHang_Load(object sender, EventArgs e)
        {

        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            bool dem = false;
            List<NhapHang> kq = KT();
            if (kq.Count > 0)
            {

                foreach (NhapHang s in kq)
                {
                    if (!KiemTraKhoaCHinh(s.NgayNhap))
                    {
                        dem = NhapHang.Objects.Insert(s);
                    }
                    

                }
                if (dem)
                {
                    dtThem.Rows.Clear();
                    MessageBox.Show("Thêm thành công","Thông Báo");
                }
            }
            else
            {
                MessageBox.Show("Chưa Chọn Dữ Liệu", "Thông Báo");
            }
        }

        private List<NhapHang> KT()
        {
            List<NhapHang> ss = new List<NhapHang>();
            if (dtThem.Rows.Count - 1 > 0)
            {


                for (int i = 0; i < dtThem.Rows.Count - 1; i++)
                {
                    try
                    {
                        if (dtThem.Rows[i].Cells[0] != null && dtThem.Rows[i].Cells[0].Value.ToString() == "True")
                        {
                            ss.Add(GetDataNH(i));

                        }
                    }
                    catch (Exception) { }
                }
            }
            return ss;
        }

        private void dtThem_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            

            if (this.dtThem.CurrentCellAddress.X == dtThem.Columns[3].DisplayIndex)
            {
                TextBox txt = e.Control as TextBox;
                txt.Name = "cSoLuong";
                if (txt != null)
                {
                    txt.KeyPress += new KeyPressEventHandler(txt_KeyPress);
                    txt.KeyPress -= new KeyPressEventHandler(txt_KeyPress);                    
                    txt.Validating -= new CancelEventHandler(txt_Validating);
                    txt.Validating += new CancelEventHandler(txt_Validating);
                }
            }
        }
       
      



        public void txt_KeyPress(object sender, KeyPressEventArgs e)
        {
            TextBox txt = sender as TextBox;
            if (txt.Name == "cSoLuong")
            {
                if (char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }

            }
 
        }

        public void txt_Validating(object sender, CancelEventArgs e)
        {           
        }

        private void dtThem_KeyPress(object sender, KeyPressEventArgs e)
        {
            TextBox txt = dtThem.Rows[0].Cells[0].Value as TextBox;
            if (txt.Text != null)
            {
                if (char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
        }

        private void dtThem_Validated(object sender, EventArgs e)
        {

        }

        private void dtThem_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
        {
            try
            {
                long a = Convert.ToInt64(dtThem.CurrentRow.Cells[3].Value);

            }
            catch
            {

                MessageBox.Show("Nhập Giá Trị Là Số Cho Số Lượng và Tổng Tiền !");

            }
        }

        private void btnDong_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            if (dtThem.Rows.Count > 0)
            {
                for (int i = 0; i < dtThem.Rows.Count; i++)
                {


                    dtThem.Rows[i].Cells[0].Value = null;

                }
            }
        }
        private bool KiemTraKhoaCHinh(DateTime dt)
        {
            foreach (var kq in NhapHang.Objects.GetAll())
            {
                if (kq.NgayNhap.ToShortDateString().Equals(dt.ToShortDateString()))
                {
                    MessageBox.Show("Trùng dữ liệu ngày nhập", "Thông Báo");
                    return true;
                }
            }
            return false;
        }
    }          
    
}


